package com.loveprogrammer.eternity.model.effect;

import com.loveprogrammer.eternity.enums.EffectTimeEnum;
import com.loveprogrammer.eternity.model.Character;
import com.loveprogrammer.eternity.model.attack.AttackEntity;
import com.loveprogrammer.eternity.model.attack.AttackResult;

import java.util.List;

/**
 * @version 1.0.0
 * @description: 特殊效果
 * @author: eric
 * @date: 2022-09-20 09:52
 **/
public interface Effect {

    /**
     * 触发时机
     **/
    StringBuilder update(Character attack,
                  EffectTimeEnum effectTimeEnum,
                  AttackResult entity,
                  List<? extends Character> attackList,
                  Character... defence);

    /**
     * 触发效果
     **/
    boolean trigger(EffectTimeEnum effectTimeEnum);

}
